package com.kobeliu.entity;

/**
 * leetCode 29
 *
 * 给定两个整数，被除数 dividend 和除数 divisor。将两数相除，要求不使用乘法、除法和 mod 运算符。
 *
 * 返回被除数 dividend 除以除数 divisor 得到的商。
 *
 * 整数除法的结果应当截去（truncate）其小数部分，例如：truncate(8.345) = 8 以及 truncate(-2.7335) = -2
 *
 *
 *
 * 示例 1:
 *
 * 输入: dividend = 10, divisor = 3
 * 输出: 3
 * 解释: 10/3 = truncate(3.33333..) = truncate(3) = 3
 *
 */

public class Demo_23_No29 {

    public static void main(String[] args) {

        System.out.println(divide(-2147483648,-1));

//        System.out.println(11/2);

    }

    public static int divide(int dividend, int divisor) {
        /**
         * 循环叠加的方法是错的，会超时
         * 使用 2^n 累乘的方法
         */
        int pre = dividend < 0? (-1)*dividend:dividend;
        if(pre <0){
            //边界情况
            pre = (-1)*(pre+1);
        }
        int end = divisor < 0? (-1)*divisor:divisor;
        int times = 0;
        int p =0;
        int q = 0;

        for (int i = 31; i >-1; i--) {

        }



        if(dividend<0){
            q++;
        }
        if(divisor<0){
            q++;
        }
        if(q%2 == 0){
            return p;
        }
        return (-1)*p;

    }
}
